package com.demo2do.fms.queue.entity;

import java.math.BigDecimal;
import java.util.Date;

import com.demo2do.fms.entity.business.shipment.DispatchOrder;
import com.demo2do.fms.entity.business.shipment.TransportCost;
import com.demo2do.fms.entity.vehicle.tractor.Tractor;

/**
 *
 * @author Ark
 *
 */
public class DispatchOrderStat {

    /** 派车单号 */
    private String code;
    
    /** 调度指令组号 */
    private String shipmentGroup;
    
    /** 车辆标识 */
    private Long vehicleId;
    
    /** 实际行驶公里数 */
    private BigDecimal facilityDistance;
    
    /** 默认行驶公里数 */
    private BigDecimal facilityDistanceDefault;
    
    /** 燃油费 */
    private BigDecimal oilFee;
    
    /** 修理费 */
    private BigDecimal repairFee;
    
    /** 轮胎费 */
    private BigDecimal tyreFee;
    
    /** 派车单结算罚款 */
    private BigDecimal fineFee;
    
    /** 其他费用 */
    private BigDecimal otherFee;
    
    /** 报销时间 */
    private Date expenseReimburseTime;
    
    /** 派车单下达时间 */
    private Date effectTime;
    
    /** 派车单创建时间 */
    private Date createTime;
    
    /**
     * The default constructor
     */
    public DispatchOrderStat() {
    }
    
    /**
     * @param dispatchOrder
     * @param transportCost
     * @param vehicle
     * @param otherFee
     */
    public DispatchOrderStat(DispatchOrder dispatchOrder, TransportCost transportCost, Tractor tractor, BigDecimal fineFee, BigDecimal otherFee) {
        this.code = dispatchOrder.getCode();
        this.shipmentGroup = dispatchOrder.getShipmentGroupId();
        this.vehicleId = tractor.getVamId();
        this.facilityDistance = dispatchOrder.getFacilityDistance();
        this.facilityDistanceDefault = dispatchOrder.getFacilityDistanceDefault();
        this.oilFee = transportCost.getTotalOilFeeReimbursed();
        this.repairFee = transportCost.getRepairFee();
        this.tyreFee = transportCost.getTyreFee();
        this.fineFee = fineFee;
        this.otherFee = otherFee;
        this.expenseReimburseTime = dispatchOrder.getExpenseReimburseDate();
        this.effectTime = dispatchOrder.getCreateDate();
        this.createTime = dispatchOrder.getCreateDate();
    }

    /**
     * @return the code
     */
    public String getCode() {
        return code;
    }

    /**
     * @return the shipmentGroup
     */
    public String getShipmentGroup() {
        return shipmentGroup;
    }

    /**
     * @return
     */
    public Long getVehicleId() {
        return vehicleId;
    }

    /**
     * @return the facilityDistance
     */
    public BigDecimal getFacilityDistance() {
        return facilityDistance;
    }

    /**
     * @return the facilityDistanceDefault
     */
    public BigDecimal getFacilityDistanceDefault() {
        return facilityDistanceDefault;
    }

    /**
     * @return the oilFee
     */
    public BigDecimal getOilFee() {
        return oilFee;
    }

    /**
     * @return the repairFee
     */
    public BigDecimal getRepairFee() {
        return repairFee;
    }

    /**
     * @return the tyreFee
     */
    public BigDecimal getTyreFee() {
        return tyreFee;
    }

    /**
     * @return the fineFee
     */
    public BigDecimal getFineFee() {
        return fineFee;
    }

    /**
     * @return the otherFee
     */
    public BigDecimal getOtherFee() {
        return otherFee;
    }

    /**
     * @return the expenseReimburseTime
     */
    public Date getExpenseReimburseTime() {
        return expenseReimburseTime;
    }

    /**
     * @return the effectTime
     */
    public Date getEffectTime() {
        return effectTime;
    }

    /**
     * @return the createTime
     */
    public Date getCreateTime() {
        return createTime;
    }

    /**
     * @param code the code to set
     */
    public void setCode(String code) {
        this.code = code;
    }

    /**
     * @param shipmentGroup the shipmentGroup to set
     */
    public void setShipmentGroup(String shipmentGroup) {
        this.shipmentGroup = shipmentGroup;
    }

    /**
     * @param vehicleId
     */
    public void setVehicleId(Long vehicleId) {
        this.vehicleId = vehicleId;
    }

    /**
     * @param facilityDistance the facilityDistance to set
     */
    public void setFacilityDistance(BigDecimal facilityDistance) {
        this.facilityDistance = facilityDistance;
    }

    /**
     * @param facilityDistanceDefault the facilityDistanceDefault to set
     */
    public void setFacilityDistanceDefault(BigDecimal facilityDistanceDefault) {
        this.facilityDistanceDefault = facilityDistanceDefault;
    }

    /**
     * @param oilFee the oilFee to set
     */
    public void setOilFee(BigDecimal oilFee) {
        this.oilFee = oilFee;
    }

    /**
     * @param repairFee the repairFee to set
     */
    public void setRepairFee(BigDecimal repairFee) {
        this.repairFee = repairFee;
    }

    /**
     * @param tyreFee the tyreFee to set
     */
    public void setTyreFee(BigDecimal tyreFee) {
        this.tyreFee = tyreFee;
    }

    /**
     * @param fineFee the fineFee to set
     */
    public void setFineFee(BigDecimal fineFee) {
        this.fineFee = fineFee;
    }

    /**
     * @param otherFee the otherFee to set
     */
    public void setOtherFee(BigDecimal otherFee) {
        this.otherFee = otherFee;
    }

    /**
     * @param expenseReimburseTime the expenseReimburseTime to set
     */
    public void setExpenseReimburseTime(Date expenseReimburseTime) {
        this.expenseReimburseTime = expenseReimburseTime;
    }

    /**
     * @param effectTime the effectTime to set
     */
    public void setEffectTime(Date effectTime) {
        this.effectTime = effectTime;
    }

    /**
     * @param createTime the createTime to set
     */
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

}